# !usr/bin/env python3
# -*- coding:utf-8 -*-

"""
Bubble Sort - 冒泡排序
    核心：冒泡
        持续比较相邻元素，大的挪到后面，因此大的会逐步往后挪，故称之为冒泡
    复杂度分析：
        平均情况和最坏情况均为O(n²)
        使用temp作为临时交换变量，空间复杂度为O(1)
    稳定性：稳定
"""

def bubbleSort(alist):
    for i in range(len(alist)):
        print(alist)
        for j in range(1, len(alist) - i):
            if alist[j -1] > alist[j]:
                alist[j - 1], alist[j] = alist[j], alist[j - 1]
    return alist

unsorted_list = [6, 5, 3, 1, 8, 7, 2]
print(bubbleSort(unsorted_list))